export class MapExploreDataModel {
    mapID: number //地图ID
    startTime: number //开始时间
    exploreTime: number //探索时间
    getData: any //获取物品
    constructor(opts: any = {}) {
        this.mapID = opts.mapID || 0
        this.startTime = opts.startTime || 0
        this.exploreTime = opts.exploreTime || 0
        this.getData = opts.getData || {}
    }
}

export class BossMapDataModel {
    bossTimes: number//世界boss每日挑战次数
    reduceBossHpMax: number//boss生命值失去最大记录
    getGiftData: any
    motivateLvl: number//激励等级,增加世界boss挑战时的属性
    constructor(opts: any = {}) {
        this.bossTimes = opts.bossTimes || 0
        this.reduceBossHpMax = opts.reduceBossHpMax || 0
        this.getGiftData = opts.getGiftData || {}
        this.motivateLvl = opts.motivateLvl || 0
    }
}

export class AdventureModel {
    bossMapData: BossMapDataModel
    mapExploreProgress: any //地图进度
    mapProgress: any //地图进度
    mapDayChallenge: any //地图每日挑战进度 副本和恶魔塔 {mapId:times}
    mapID: number //当前地图ID
    floor: number //冒险地图关卡进度
    instanceAmount: number //副本每日挑战次数
    abyssAmount: number  //恶魔塔每日挑战次数
    getResourceTime: number
    autoTime: number
    offlineTime: number
    resourceTimes: number
    equipmentAutoDestroy: boolean[] //装备自动销毁
    skillBookAutoDestroy: boolean[] //技能书自动销毁
    xunbaoData: any//寻宝奖励数据
    isXunbaoing: boolean//寻宝状态
    mapExploreData: MapExploreDataModel[]
    clickGold: number //点击金币时间加成
    onLineGetGold: number //在线领取金币加成
    addGoldPer: number//金币收益加成
    addEquipmentDropPer: number//挂机装备掉落加强
    speedUpIndex: number //加速索引
    speedUpTime: number //加速时间
    offlineSpeedUp: boolean //离线加速
    areaCsReward: number //跨服战领取奖励
    constructor(opts: any = {}) {
        this.bossMapData = new BossMapDataModel(opts.bossMapData)
        this.mapID = opts.mapID || 300001
        this.floor = opts.floor || 1
        this.mapExploreProgress = opts.mapExploreProgress || {}
        this.mapProgress = opts.mapProgress || {}
        this.mapDayChallenge = opts.mapDayChallenge || {}
        this.instanceAmount = opts.instanceAmount || 0
        this.abyssAmount = opts.abyssAmount || 0
        this.getResourceTime = opts.getResourceTime || 0
        this.autoTime = opts.autoTime || 0
        this.offlineTime = opts.offlineTime || 0
        this.resourceTimes = opts.resourceTimes || 0
        this.equipmentAutoDestroy = opts.equipmentAutoDestroy || [false, false, false, false, false, false, false, false, false, false]
        this.skillBookAutoDestroy = opts.skillBookAutoDestroy || [false, false, false, false, false, false, false, false, false, false]
        this.xunbaoData = opts.xunbaoData || {}
        this.isXunbaoing = opts.isXunbaoing || false
        this.mapExploreData = opts.mapExploreData || []
        this.clickGold = opts.clickGold || 0
        this.onLineGetGold = opts.onLineGetGold || 0
        this.addGoldPer = opts.addGoldPer || 0
        this.addEquipmentDropPer = opts.addEquipmentDropPer || 0
        this.speedUpIndex = opts.speedUpIndex || 0
        this.speedUpTime = opts.speedUpTime || 0
        this.offlineSpeedUp = opts.offlineSpeedUp || false
        this.areaCsReward = opts.areaCsReward || 0
    }
}